package org.web.webdisplay.sdk.dto.query;

import java.util.*;
import lombok.Getter;
import lombok.Setter;
import org.web.base.domain.*;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.NotNull;

@Setter
@Getter
public class QueryGroupInfoRequest extends ExtendQueryBase {
    /**
    * 圈定 'specifiedAttributeSet' 返回属性信息范围，指定的属性信息与列定义名称保持一致。
    */
    private static final Set<String> COLUMN_SET = new HashSet<>(Arrays.asList("group_info_id", "first_group_name", "second_group_name"));

    /**
    * 圈定 'specifiedAttributeSet' 返回属性信息范围，指定的属性信息与列定义名称保持一致。
    */
    private static final Set<String> SORT_COLUMN_SET = new HashSet<>(Arrays.asList("group_info_id", "first_group_name", "second_group_name"));

    @Override
    public Set<String> getColumnsSet() {
        return COLUMN_SET;
    }

    @Override
    public Set<String> getSortColumnsSet() {
        return SORT_COLUMN_SET;
    }

    /**
    * 根据 'groupInfoId' 精确查询.
    */
    private Integer groupInfoId;

    /**
    * 根据 'groupInfoIdSet' 范围查询.
    */
    private Set<Integer> groupInfoIdSet;

    /**
    * 根据 'firstGroupName' 精确查询.
    */
    private String firstGroupName;

    /**
    * 根据 'fuzzyFirstGroupName' 模糊查询.
    */
    private String fuzzyFirstGroupName;

    /**
    * 根据 'firstGroupNameSet' 范围查询.
    */
    private Set<String> firstGroupNameSet;

    /**
    * 根据 'secondGroupName' 精确查询.
    */
    private String secondGroupName;

    /**
    * 根据 'fuzzySecondGroupName' 模糊查询.
    */
    private String fuzzySecondGroupName;

    /**
    * 根据 'secondGroupNameSet' 范围查询.
    */
    private Set<String> secondGroupNameSet;


    @NotNull(message = "pageSize 不能为空")
    @Max(value = 200, message = "pageSize 不能大于200")
    public Integer getPageSize() {
        return super.getPageSize();
    }
}